package com.glela.platform.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.glela.platform.model.PushMessage;

/**
 * 
 * @author MaoZeYao
 *
 */
public interface PushMessageMapper {
	
	/**
	 * 根据用户修改推送消息状态  已推送成功 ,推送失败
	 * @param id
	 * @return
	 */
	public int updatePushMessageSetStatus(@Param("id") long id ,@Param("status")int status);
	
	/**
	 * 查询所有准备推送的消息  ，消息状态为1
	 * @return
	 */
	public PushMessage selectPushMessageById(long id);
	
	/**
	 * 
	 * @param isAll 是否全部推送
	 * @param userId 用户ID
	 * @param type 0系统消息 1钱包消息 2物流消息
	 * @param content 必输  消息内容
	 * @param status 0禁用  1待发送  2已发送  3发送失败
	 * @return
	 */
	/*public long insertIntoPushMessage(@Param("isAll") int isAll, @Param("userId") long userId, @Param("type") int type,
			@Param("content") String content, @Param("status") int status, @Param("title") String title);*/
	public int insertIntoPushMessage(PushMessage pusshMessage);

	/**
	 * 根据用户ID和消息类型查询
	 * @param userId
	 * @param type
	 * @return
	 */
	public List<PushMessage> selectPushMessageByUserIdAndStatus(@Param("userId") long userId, @Param("type") int type,
			@Param("page") int page, @Param("pageSize") int pageSize);

	/**
	 * <dl>
	 * <dt>查询未读消息</dt>
	 * </dl>
	 * @param userId 用户id
	 * @param type 消息类型
	 * @param status 消息状态
	 * @param isRead 是否已读，0未读，1已读
	 * @return int 消息数量
	 * @author zls
	 * @date 2017年7月6日 下午7:00:25
	 */
	public int selectNoReadMessage(@Param("userId") Long userId, @Param("type") Integer type, @Param("status") Integer status, @Param("isRead")Integer isRead);
	
	public int updateNoReadMessage(@Param("userId") long userId, @Param("type") int type);
	
	public PushMessage selectPushMessageByUserIdAndTypeLimit(@Param("userId") long userId, @Param("type") int type);
}
